﻿using DAL;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.IO;
using System.Windows.Forms;

namespace MainOP
{
    public partial class FormDataSelectBarCode : Form
    {
        public FormDataSelectBarCode()
        {
            InitializeComponent();
        }
        List<aomaModel> objProductData = new List<aomaModel>();
        private void button1_Click(object sender, EventArgs e)
        {
            //查询前先清空数据集
            objProductData.Clear();
            //清空表格再查询
            while (this.dataGridView1.Rows.Count != 1)
            {
                this.dataGridView1.DataSource = null;
            }
            //string sql = "select [产品下线时间], [产品型号], tiaoma.ID,[总成码], [总结果],[托盘号],productData.[内部码], [OP10-1扫码1名称], [OP10-1扫码1], [OP10-1扫码2名称], [OP10-1扫码2], [OP10-2扫码1名称], [OP10-2扫码1], [OP10-2扫码2名称], [OP10-2扫码2], [OP10扫码1名称], [OP10扫码1], [OP10扫码2名称], [OP10扫码2], [OP10扫码3名称], [OP10扫码3], [OP10扫码4名称], [OP10扫码4], [OP20扫码1名称], [OP20扫码1],[OP20扫码2名称], [OP20扫码2], [OP20扫码3名称], [OP20扫码3], [OP20扫码4名称], [OP20扫码4], [OP40扫码1名称], [OP40扫码1], [OP40扫码2名称], [OP40扫码2], [OP40扫码3名称], [OP40扫码3], [OP40扫码4名称], [OP40扫码4], [OP50扫码1名称], [OP50扫码1], [OP50扫码2名称], [OP50扫码2], [OP50扫码3名称], [OP50扫码3], [OP50扫码4名称], [OP50扫码4], [OP60扫码1名称], [OP60扫码1], [OP60扫码2名称], [OP60扫码2], [OP60扫码3名称], [OP60扫码3], [OP60扫码4名称], [OP60扫码4], [OP70扫码1名称], [OP70扫码1], [OP80扫码1名称], [OP80扫码1] from productData inner join tiaoma on productData.ID = tiaoma.ID where [产品下线时间] Between '{0}' and '{1}' order by[产品下线时间] ASC";
            string sql = "select [产品下线时间], [产品型号], tiaoma.ID,[总成码], [总结果],[托盘号],productData.[内部码], [OP10-1扫码1名称], [OP10-1扫码1], [OP10-1扫码2名称], [OP10-1扫码2], [OP10-2扫码1名称], [OP10-2扫码1], [OP10-2扫码2名称], [OP10-2扫码2], [OP10扫码1名称], [OP10扫码1], [OP10扫码2名称], [OP10扫码2], [OP10扫码3名称], [OP10扫码3], [OP10扫码4名称], [OP10扫码4], [OP20扫码1名称], [OP20扫码1],[OP20扫码2名称], [OP20扫码2], [OP20扫码3名称], [OP20扫码3], [OP20扫码4名称], [OP20扫码4], [OP30扫码1名称], [OP30扫码1], [OP30扫码2名称], [OP30扫码2], [OP30扫码3名称], [OP30扫码3], [OP30扫码4名称], [OP30扫码4], [OP60扫码1名称], [OP40扫码1名称], [OP40扫码1], [OP40扫码2名称], [OP40扫码2], [OP40扫码3名称], [OP40扫码3], [OP40扫码4名称], [OP40扫码4], [OP50扫码1名称], [OP50扫码1], [OP50扫码2名称], [OP50扫码2], [OP50扫码3名称], [OP50扫码3], [OP50扫码4名称], [OP50扫码4], [OP60扫码1名称], [OP60扫码1], [OP60扫码2名称], [OP60扫码2], [OP60扫码3名称], [OP60扫码3], [OP60扫码4名称], [OP60扫码4], [返修内容] from productData inner join tiaoma on productData.ID = tiaoma.ID where [产品下线时间] Between '{0}' and '{1}' order by[产品下线时间] ASC";
            sql = string.Format(sql, dateTimePicker1.Text, dateTimePicker2.Text);
            objProductData = aomaFunc.GetData(sql,true);
            dataGridView1.AutoGenerateColumns = false;
            dataGridView1.DataSource = objProductData;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            //查询前先清空数据集
            objProductData.Clear();
            //清空表格再查询
            while (this.dataGridView1.Rows.Count != 1)
            {
                this.dataGridView1.DataSource = null;
            }
            //oductDataToDJFunc oductDataToDJFunc = new oductDataToDJFunc();
            if (comboBox1.Text != "")
            {
                string sql;
                if (comboBox1.SelectedIndex > 2)
                {
                    //sql = "select [产品下线时间], [产品型号], tiaoma.ID,[总成码], [总结果],[托盘号],productData.[内部码], [OP10扫码1名称], [OP10扫码1], [OP10扫码2名称], [OP10扫码2], [OP10扫码3名称], [OP10扫码3], [OP10扫码4名称], [OP10扫码4], [OP20扫码1名称], [OP20扫码1],[OP20扫码2名称], [OP20扫码2], [OP20扫码3名称], [OP20扫码3], [OP20扫码4名称], [OP20扫码4], [OP40扫码1名称], [OP40扫码1], [OP40扫码2名称], [OP40扫码2], [OP40扫码3名称], [OP40扫码3], [OP40扫码4名称], [OP40扫码4], [OP50扫码1名称], [OP50扫码1], [OP50扫码2名称], [OP50扫码2], [OP50扫码3名称], [OP50扫码3], [OP50扫码4名称], [OP50扫码4], [OP60扫码1名称], [OP60扫码1], [OP60扫码2名称], [OP60扫码2], [OP60扫码3名称], [OP60扫码3], [OP60扫码4名称], [OP60扫码4], [OP70扫码1名称], [OP70扫码1], [OP80扫码1名称], [OP80扫码1] from productData inner join tiaoma on productData.ID = tiaoma.ID where tiaoma." + comboBox1.Text + "='" + textBox1.Text + "'" + " order by productData.[产品下线时间] ASC";
                    sql = "select [产品下线时间], [产品型号], tiaoma.ID,[总成码], [总结果],[托盘号],productData.[内部码], [OP10-1扫码1名称], [OP10-1扫码1], [OP10-1扫码2名称], [OP10-1扫码2], [OP10-2扫码1名称], [OP10-2扫码1], [OP10-2扫码2名称], [OP10-2扫码2], [OP10扫码1名称], [OP10扫码1], [OP10扫码2名称], [OP10扫码2], [OP10扫码3名称], [OP10扫码3], [OP10扫码4名称], [OP10扫码4], [OP20扫码1名称], [OP20扫码1],[OP20扫码2名称], [OP20扫码2], [OP20扫码3名称], [OP20扫码3], [OP20扫码4名称], [OP20扫码4], [OP30扫码1名称], [OP30扫码1], [OP30扫码2名称], [OP30扫码2], [OP30扫码3名称], [OP30扫码3], [OP30扫码4名称], [OP30扫码4], [OP40扫码1名称], [OP40扫码1], [OP40扫码2名称], [OP40扫码2], [OP40扫码3名称], [OP40扫码3], [OP40扫码4名称], [OP40扫码4], [OP50扫码1名称], [OP50扫码1], [OP50扫码2名称], [OP50扫码2], [OP50扫码3名称], [OP50扫码3], [OP50扫码4名称], [OP50扫码4], [OP60扫码1名称], [OP60扫码1], [OP60扫码2名称], [OP60扫码2], [OP60扫码3名称], [OP60扫码3], [OP60扫码4名称], [OP60扫码4], [返修内容] from productData inner join tiaoma on productData.ID = tiaoma.ID where tiaoma." + comboBox1.Text + "='" + textBox1.Text + "'" + " order by productData.[产品下线时间] ASC";
                }
                else
                {
                    //sql = "select [产品下线时间], [产品型号], tiaoma.ID,[总成码], [总结果],[托盘号],productData.[内部码], [OP10扫码1名称], [OP10扫码1], [OP10扫码2名称], [OP10扫码2], [OP10扫码3名称], [OP10扫码3], [OP10扫码4名称], [OP10扫码4], [OP20扫码1名称], [OP20扫码1],[OP20扫码2名称], [OP20扫码2], [OP20扫码3名称], [OP20扫码3], [OP20扫码4名称], [OP20扫码4], [OP40扫码1名称], [OP40扫码1], [OP40扫码2名称], [OP40扫码2], [OP40扫码3名称], [OP40扫码3], [OP40扫码4名称], [OP40扫码4], [OP50扫码1名称], [OP50扫码1], [OP50扫码2名称], [OP50扫码2], [OP50扫码3名称], [OP50扫码3], [OP50扫码4名称], [OP50扫码4], [OP60扫码1名称], [OP60扫码1], [OP60扫码2名称], [OP60扫码2], [OP60扫码3名称], [OP60扫码3], [OP60扫码4名称], [OP60扫码4], [OP70扫码1名称], [OP70扫码1], [OP80扫码1名称], [OP80扫码1] from productData inner join tiaoma on productData.ID = tiaoma.ID where productData." + comboBox1.Text + "='" + textBox1.Text + "'" + " order by productData.[产品下线时间] ASC";
                    sql = "select [产品下线时间], [产品型号], tiaoma.ID,[总成码], [总结果],[托盘号],productData.[内部码], [OP10-1扫码1名称], [OP10-1扫码1], [OP10-1扫码2名称], [OP10-1扫码2], [OP10-2扫码1名称], [OP10-2扫码1], [OP10-2扫码2名称], [OP10-2扫码2], [OP10扫码1名称], [OP10扫码1], [OP10扫码2名称], [OP10扫码2], [OP10扫码3名称], [OP10扫码3], [OP10扫码4名称], [OP10扫码4], [OP20扫码1名称], [OP20扫码1],[OP20扫码2名称], [OP20扫码2], [OP20扫码3名称], [OP20扫码3], [OP20扫码4名称], [OP20扫码4], [OP30扫码1名称], [OP30扫码1], [OP30扫码2名称], [OP30扫码2], [OP30扫码3名称], [OP30扫码3], [OP30扫码4名称], [OP30扫码4], [OP40扫码1名称], [OP40扫码1], [OP40扫码2名称], [OP40扫码2], [OP40扫码3名称], [OP40扫码3], [OP40扫码4名称], [OP40扫码4], [OP50扫码1名称], [OP50扫码1], [OP50扫码2名称], [OP50扫码2], [OP50扫码3名称], [OP50扫码3], [OP50扫码4名称], [OP50扫码4], [OP60扫码1名称], [OP60扫码1], [OP60扫码2名称], [OP60扫码2], [OP60扫码3名称], [OP60扫码3], [OP60扫码4名称], [OP60扫码4], [返修内容] from productData inner join tiaoma on productData.ID = tiaoma.ID where productData." + comboBox1.Text + "='" + textBox1.Text + "'" + " order by productData.[产品下线时间] ASC";
                }
                objProductData = aomaFunc.GetData(sql, true);

            }
            else
            {
                string sql = "select [产品下线时间], [产品型号], tiaoma.ID,[总成码], [总结果],[托盘号],productData.[内部码], [OP10-1扫码1名称], [OP10-1扫码1], [OP10-1扫码2名称], [OP10-1扫码2], [OP10-2扫码1名称], [OP10-2扫码1], [OP10-2扫码2名称], [OP10-2扫码2], [OP10扫码1名称], [OP10扫码1], [OP10扫码2名称], [OP10扫码2], [OP10扫码3名称], [OP10扫码3], [OP10扫码4名称], [OP10扫码4], [OP20扫码1名称], [OP20扫码1],[OP20扫码2名称], [OP20扫码2], [OP20扫码3名称], [OP20扫码3], [OP20扫码4名称], [OP20扫码4], [OP30扫码1名称], [OP30扫码1], [OP30扫码2名称], [OP30扫码2], [OP30扫码3名称], [OP30扫码3], [OP30扫码4名称], [OP30扫码4],[OP40扫码1名称], [OP40扫码1], [OP40扫码2名称], [OP40扫码2], [OP40扫码3名称], [OP40扫码3], [OP40扫码4名称], [OP40扫码4], [OP50扫码1名称], [OP50扫码1], [OP50扫码2名称], [OP50扫码2], [OP50扫码3名称], [OP50扫码3], [OP50扫码4名称], [OP50扫码4], [OP60扫码1名称], [OP60扫码1], [OP60扫码2名称], [OP60扫码2], [OP60扫码3名称], [OP60扫码3], [OP60扫码4名称], [OP60扫码4], [返修内容] from productData inner join tiaoma on productData.ID = tiaoma.ID where concat([产品下线时间], [产品型号], tiaoma.ID,[总成码], [总结果],[托盘号],productData.[内部码], [OP10扫码1名称], [OP10扫码1], [OP10扫码2名称], [OP10扫码2], [OP10扫码3名称], [OP10扫码3], [OP10扫码4名称], [OP10扫码4], [OP20扫码1名称], [OP20扫码1],[OP20扫码2名称], [OP20扫码2], [OP20扫码3名称], [OP20扫码3], [OP20扫码4名称], [OP20扫码4], [OP30扫码1名称], [OP30扫码1], [OP30扫码2名称], [OP30扫码2], [OP30扫码3名称], [OP30扫码3], [OP30扫码4名称], [OP30扫码4], [OP40扫码1名称], [OP40扫码1], [OP40扫码2名称], [OP40扫码2], [OP40扫码3名称], [OP40扫码3], [OP40扫码4名称], [OP40扫码4], [OP50扫码1名称], [OP50扫码1], [OP50扫码2名称], [OP50扫码2], [OP50扫码3名称], [OP50扫码3], [OP50扫码4名称], [OP50扫码4], [OP60扫码1名称], [OP60扫码1], [OP60扫码2名称], [OP60扫码2], [OP60扫码3名称], [OP60扫码3], [OP60扫码4名称], [OP60扫码4], [OP70扫码1名称], [OP70扫码1], [OP80扫码1名称], [OP80扫码1]) like '%" + textBox1.Text + "%' order by productData.[产品下线时间] ASC";
                objProductData = aomaFunc.GetData(sql, true);
            }

            this.dataGridView1.AutoGenerateColumns = false;
            this.dataGridView1.DataSource = objProductData;
        }

        private void button3_Click(object sender, EventArgs e)
        {
            //创建Excel工作簿和工作表
            XSSFWorkbook workbook = new XSSFWorkbook();
            ISheet newsheet = workbook.CreateSheet("条码追溯记录");

            //创建Excel工作表的列标题
            IRow rowHeader = newsheet.CreateRow(0);

            //rowHeader.CreateCell(0, CellType.String).SetCellValue("产品下线时间");
            //rowHeader.CreateCell(1, CellType.String).SetCellValue(" 产品型号");
            //rowHeader.CreateCell(2, CellType.String).SetCellValue(" ID");
            //rowHeader.CreateCell(3, CellType.String).SetCellValue("总成码");
            //rowHeader.CreateCell(4, CellType.String).SetCellValue(" 总结果");
            //rowHeader.CreateCell(5, CellType.String).SetCellValue("托盘号");
            //rowHeader.CreateCell(6, CellType.String).SetCellValue("内部码");
            //rowHeader.CreateCell(7, CellType.String).SetCellValue(" OP10扫码1名称");
            //rowHeader.CreateCell(8, CellType.String).SetCellValue(" OP10扫码1");
            //rowHeader.CreateCell(9, CellType.String).SetCellValue(" OP10扫码2名称");
            //rowHeader.CreateCell(10, CellType.String).SetCellValue(" OP10扫码2");
            //rowHeader.CreateCell(11, CellType.String).SetCellValue(" OP10扫码3名称");
            //rowHeader.CreateCell(12, CellType.String).SetCellValue(" OP10扫码3");
            //rowHeader.CreateCell(13, CellType.String).SetCellValue(" OP10扫码4名称");
            //rowHeader.CreateCell(14, CellType.String).SetCellValue(" OP10扫码4");
            //rowHeader.CreateCell(15, CellType.String).SetCellValue(" OP20扫码1名称");
            //rowHeader.CreateCell(16, CellType.String).SetCellValue(" OP20扫码1");
            //rowHeader.CreateCell(17, CellType.String).SetCellValue("OP20扫码2名称");
            //rowHeader.CreateCell(18, CellType.String).SetCellValue(" OP20扫码2");
            //rowHeader.CreateCell(19, CellType.String).SetCellValue(" OP20扫码3名称");
            //rowHeader.CreateCell(20, CellType.String).SetCellValue(" OP20扫码3");
            //rowHeader.CreateCell(21, CellType.String).SetCellValue(" OP20扫码4名称");
            //rowHeader.CreateCell(22, CellType.String).SetCellValue(" OP20扫码4");
            //rowHeader.CreateCell(23, CellType.String).SetCellValue("OP40扫码1名称");
            //rowHeader.CreateCell(24, CellType.String).SetCellValue(" OP40扫码1");
            //rowHeader.CreateCell(25, CellType.String).SetCellValue(" OP40扫码2名称");
            //rowHeader.CreateCell(26, CellType.String).SetCellValue(" OP40扫码2");
            //rowHeader.CreateCell(27, CellType.String).SetCellValue(" OP40扫码3名称");
            //rowHeader.CreateCell(28, CellType.String).SetCellValue(" OP40扫码3");
            //rowHeader.CreateCell(29, CellType.String).SetCellValue(" OP40扫码4名称");
            //rowHeader.CreateCell(30, CellType.String).SetCellValue(" OP40扫码4");
            //rowHeader.CreateCell(31, CellType.String).SetCellValue(" OP50扫码1名称");
            //rowHeader.CreateCell(32, CellType.String).SetCellValue(" OP50扫码1");
            //rowHeader.CreateCell(33, CellType.String).SetCellValue(" OP50扫码2名称");
            //rowHeader.CreateCell(34, CellType.String).SetCellValue(" OP50扫码2");
            //rowHeader.CreateCell(35, CellType.String).SetCellValue(" OP50扫码3名称");
            //rowHeader.CreateCell(36, CellType.String).SetCellValue(" OP50扫码3");
            //rowHeader.CreateCell(37, CellType.String).SetCellValue(" OP50扫码4名称");
            //rowHeader.CreateCell(38, CellType.String).SetCellValue(" OP50扫码4");
            //rowHeader.CreateCell(39, CellType.String).SetCellValue(" OP60扫码1名称");
            //rowHeader.CreateCell(40, CellType.String).SetCellValue(" OP60扫码1");
            //rowHeader.CreateCell(41, CellType.String).SetCellValue(" OP60扫码2名称");
            //rowHeader.CreateCell(42, CellType.String).SetCellValue(" OP60扫码2");
            //rowHeader.CreateCell(43, CellType.String).SetCellValue(" OP60扫码3名称");
            //rowHeader.CreateCell(44, CellType.String).SetCellValue(" OP60扫码3");
            //rowHeader.CreateCell(45, CellType.String).SetCellValue(" OP60扫码4名称");
            //rowHeader.CreateCell(46, CellType.String).SetCellValue(" OP60扫码4");
            //rowHeader.CreateCell(47, CellType.String).SetCellValue(" OP70扫码1名称");
            //rowHeader.CreateCell(48, CellType.String).SetCellValue(" OP70扫码1");
            //rowHeader.CreateCell(49, CellType.String).SetCellValue(" OP80扫码1名称");
            //rowHeader.CreateCell(50, CellType.String).SetCellValue(" OP80扫码1");

            rowHeader.CreateCell(0, CellType.String).SetCellValue("产品下线时间");
            rowHeader.CreateCell(1, CellType.String).SetCellValue(" 产品型号");
            rowHeader.CreateCell(2, CellType.String).SetCellValue(" ID");
            rowHeader.CreateCell(3, CellType.String).SetCellValue("总成码");
            rowHeader.CreateCell(4, CellType.String).SetCellValue(" 总结果");
            rowHeader.CreateCell(5, CellType.String).SetCellValue("托盘号");
            rowHeader.CreateCell(6, CellType.String).SetCellValue("内部码");
            rowHeader.CreateCell(7, CellType.String).SetCellValue(" OP10-1扫码1名称");
            rowHeader.CreateCell(8, CellType.String).SetCellValue(" OP10-1扫码1");
            rowHeader.CreateCell(9, CellType.String).SetCellValue(" OP10-1扫码2名称");
            rowHeader.CreateCell(10, CellType.String).SetCellValue(" OP10-1扫码2");
            rowHeader.CreateCell(11, CellType.String).SetCellValue(" OP10-2扫码1名称");
            rowHeader.CreateCell(12, CellType.String).SetCellValue(" OP10-2扫码1");
            rowHeader.CreateCell(13, CellType.String).SetCellValue(" OP10-2扫码2名称");
            rowHeader.CreateCell(14, CellType.String).SetCellValue(" OP10-2扫码2");
            rowHeader.CreateCell(15, CellType.String).SetCellValue(" OP10扫码1名称");
            rowHeader.CreateCell(16, CellType.String).SetCellValue(" OP10扫码1");
            rowHeader.CreateCell(17, CellType.String).SetCellValue(" OP10扫码2名称");
            rowHeader.CreateCell(18, CellType.String).SetCellValue(" OP10扫码2");
            rowHeader.CreateCell(19, CellType.String).SetCellValue(" OP10扫码3名称");
            rowHeader.CreateCell(20, CellType.String).SetCellValue(" OP10扫码3");
            rowHeader.CreateCell(21, CellType.String).SetCellValue(" OP10扫码4名称");
            rowHeader.CreateCell(22, CellType.String).SetCellValue(" OP10扫码4");
            rowHeader.CreateCell(23, CellType.String).SetCellValue(" OP20扫码1名称");
            rowHeader.CreateCell(24, CellType.String).SetCellValue(" OP20扫码1");
            rowHeader.CreateCell(25, CellType.String).SetCellValue("OP20扫码2名称");
            rowHeader.CreateCell(26, CellType.String).SetCellValue(" OP20扫码2");
            rowHeader.CreateCell(27, CellType.String).SetCellValue(" OP20扫码3名称");
            rowHeader.CreateCell(28, CellType.String).SetCellValue(" OP20扫码3");
            rowHeader.CreateCell(29, CellType.String).SetCellValue(" OP20扫码4名称");
            rowHeader.CreateCell(30, CellType.String).SetCellValue(" OP20扫码4");
            rowHeader.CreateCell(31, CellType.String).SetCellValue(" OP30扫码1名称");
            rowHeader.CreateCell(32, CellType.String).SetCellValue(" OP30扫码1");
            rowHeader.CreateCell(33, CellType.String).SetCellValue(" OP30扫码2名称");
            rowHeader.CreateCell(34, CellType.String).SetCellValue(" OP30扫码2");
            rowHeader.CreateCell(35, CellType.String).SetCellValue(" OP30扫码3名称");
            rowHeader.CreateCell(36, CellType.String).SetCellValue(" OP30扫码3");
            rowHeader.CreateCell(37, CellType.String).SetCellValue(" OP30扫码4名称");
            rowHeader.CreateCell(38, CellType.String).SetCellValue(" OP30扫码4");
            rowHeader.CreateCell(39, CellType.String).SetCellValue("OP40扫码1名称");
            rowHeader.CreateCell(40, CellType.String).SetCellValue(" OP40扫码1");
            rowHeader.CreateCell(41, CellType.String).SetCellValue(" OP40扫码2名称");
            rowHeader.CreateCell(42, CellType.String).SetCellValue(" OP40扫码2");
            rowHeader.CreateCell(43, CellType.String).SetCellValue(" OP40扫码3名称");
            rowHeader.CreateCell(44, CellType.String).SetCellValue(" OP40扫码3");
            rowHeader.CreateCell(45, CellType.String).SetCellValue(" OP40扫码4名称");
            rowHeader.CreateCell(46, CellType.String).SetCellValue(" OP40扫码4");
            rowHeader.CreateCell(47, CellType.String).SetCellValue(" OP50扫码1名称");
            rowHeader.CreateCell(48, CellType.String).SetCellValue(" OP50扫码1");
            rowHeader.CreateCell(49, CellType.String).SetCellValue(" OP50扫码2名称");
            rowHeader.CreateCell(50, CellType.String).SetCellValue(" OP50扫码2");
            rowHeader.CreateCell(51, CellType.String).SetCellValue(" OP50扫码3名称");
            rowHeader.CreateCell(52, CellType.String).SetCellValue(" OP50扫码3");
            rowHeader.CreateCell(53, CellType.String).SetCellValue(" OP50扫码4名称");
            rowHeader.CreateCell(54, CellType.String).SetCellValue(" OP50扫码4");
            rowHeader.CreateCell(55, CellType.String).SetCellValue(" OP60扫码1名称");
            rowHeader.CreateCell(56, CellType.String).SetCellValue(" OP60扫码1");
            rowHeader.CreateCell(57, CellType.String).SetCellValue(" OP60扫码2名称");
            rowHeader.CreateCell(58, CellType.String).SetCellValue(" OP60扫码2");
            rowHeader.CreateCell(59, CellType.String).SetCellValue(" OP60扫码3名称");
            rowHeader.CreateCell(60, CellType.String).SetCellValue(" OP60扫码3");
            rowHeader.CreateCell(61, CellType.String).SetCellValue(" OP60扫码4名称");
            rowHeader.CreateCell(62, CellType.String).SetCellValue(" OP60扫码4");
            rowHeader.CreateCell(63, CellType.String).SetCellValue(" 返修内容");

            for (int i = 0; i < objProductData.Count; i++)
            {
                IRow row = newsheet.CreateRow(i + 1);

                try
                {
                    row.CreateCell(0, CellType.String).SetCellValue(objProductData[i].产品下线时间);
                    row.CreateCell(1, CellType.String).SetCellValue(objProductData[i].产品型号);
                    row.CreateCell(2, CellType.String).SetCellValue(objProductData[i].ID);
                    row.CreateCell(3, CellType.String).SetCellValue(objProductData[i].总成码);
                    row.CreateCell(4, CellType.String).SetCellValue(objProductData[i].总结果);
                    row.CreateCell(5, CellType.String).SetCellValue(objProductData[i].托盘号);
                    row.CreateCell(6, CellType.String).SetCellValue(objProductData[i].内部码);
                    row.CreateCell(7, CellType.String).SetCellValue(objProductData[i].OP10_1扫码1名称);
                    row.CreateCell(8, CellType.String).SetCellValue(objProductData[i].OP10_1扫码1);
                    row.CreateCell(9, CellType.String).SetCellValue(objProductData[i].OP10_1扫码2名称);
                    row.CreateCell(10, CellType.String).SetCellValue(objProductData[i].OP10_1扫码2);
                    row.CreateCell(11, CellType.String).SetCellValue(objProductData[i].OP10_2扫码1名称);
                    row.CreateCell(12, CellType.String).SetCellValue(objProductData[i].OP10_2扫码1);
                    row.CreateCell(13, CellType.String).SetCellValue(objProductData[i].OP10_2扫码2名称);
                    row.CreateCell(14, CellType.String).SetCellValue(objProductData[i].OP10_2扫码2);
                    row.CreateCell(15, CellType.String).SetCellValue(objProductData[i].OP10扫码1名称);
                    row.CreateCell(16, CellType.String).SetCellValue(objProductData[i].OP10扫码1);
                    row.CreateCell(17, CellType.String).SetCellValue(objProductData[i].OP10扫码2名称);
                    row.CreateCell(18, CellType.String).SetCellValue(objProductData[i].OP10扫码2);
                    row.CreateCell(19, CellType.String).SetCellValue(objProductData[i].OP10扫码3名称);
                    row.CreateCell(20, CellType.String).SetCellValue(objProductData[i].OP10扫码3);
                    row.CreateCell(21, CellType.String).SetCellValue(objProductData[i].OP10扫码4名称);
                    row.CreateCell(22, CellType.String).SetCellValue(objProductData[i].OP10扫码4);
                    row.CreateCell(23, CellType.String).SetCellValue(objProductData[i].OP20扫码1名称);
                    row.CreateCell(24, CellType.String).SetCellValue(objProductData[i].OP20扫码1);
                    row.CreateCell(25, CellType.String).SetCellValue(objProductData[i].OP20扫码2名称);
                    row.CreateCell(26, CellType.String).SetCellValue(objProductData[i].OP20扫码2);
                    row.CreateCell(27, CellType.String).SetCellValue(objProductData[i].OP20扫码3名称);
                    row.CreateCell(28, CellType.String).SetCellValue(objProductData[i].OP20扫码3);
                    row.CreateCell(29, CellType.String).SetCellValue(objProductData[i].OP20扫码4名称);
                    row.CreateCell(30, CellType.String).SetCellValue(objProductData[i].OP20扫码4);

                    row.CreateCell(31, CellType.String).SetCellValue(objProductData[i].OP30扫码1名称);
                    row.CreateCell(32, CellType.String).SetCellValue(objProductData[i].OP30扫码1);
                    row.CreateCell(33, CellType.String).SetCellValue(objProductData[i].OP30扫码2名称);
                    row.CreateCell(34, CellType.String).SetCellValue(objProductData[i].OP30扫码2);
                    row.CreateCell(35, CellType.String).SetCellValue(objProductData[i].OP30扫码3名称);
                    row.CreateCell(36, CellType.String).SetCellValue(objProductData[i].OP30扫码3);
                    row.CreateCell(37, CellType.String).SetCellValue(objProductData[i].OP30扫码4名称);
                    row.CreateCell(38, CellType.String).SetCellValue(objProductData[i].OP30扫码4);

                    row.CreateCell(39, CellType.String).SetCellValue(objProductData[i].OP40扫码1名称);
                    row.CreateCell(40, CellType.String).SetCellValue(objProductData[i].OP40扫码1);
                    row.CreateCell(41, CellType.String).SetCellValue(objProductData[i].OP40扫码2名称);
                    row.CreateCell(42, CellType.String).SetCellValue(objProductData[i].OP40扫码2);
                    row.CreateCell(43, CellType.String).SetCellValue(objProductData[i].OP40扫码3名称);
                    row.CreateCell(44, CellType.String).SetCellValue(objProductData[i].OP40扫码3);
                    row.CreateCell(45, CellType.String).SetCellValue(objProductData[i].OP40扫码4名称);
                    row.CreateCell(46, CellType.String).SetCellValue(objProductData[i].OP40扫码4);
                    row.CreateCell(47, CellType.String).SetCellValue(objProductData[i].OP50扫码1名称);
                    row.CreateCell(48, CellType.String).SetCellValue(objProductData[i].OP50扫码1);
                    row.CreateCell(49, CellType.String).SetCellValue(objProductData[i].OP50扫码2名称);
                    row.CreateCell(50, CellType.String).SetCellValue(objProductData[i].OP50扫码2);
                    row.CreateCell(51, CellType.String).SetCellValue(objProductData[i].OP50扫码3名称);
                    row.CreateCell(52, CellType.String).SetCellValue(objProductData[i].OP50扫码3);
                    row.CreateCell(53, CellType.String).SetCellValue(objProductData[i].OP50扫码4名称);
                    row.CreateCell(54, CellType.String).SetCellValue(objProductData[i].OP50扫码4);
                    row.CreateCell(55, CellType.String).SetCellValue(objProductData[i].OP60扫码1名称);
                    row.CreateCell(56, CellType.String).SetCellValue(objProductData[i].OP60扫码1);
                    row.CreateCell(57, CellType.String).SetCellValue(objProductData[i].OP60扫码2名称);
                    row.CreateCell(58, CellType.String).SetCellValue(objProductData[i].OP60扫码2);
                    row.CreateCell(59, CellType.String).SetCellValue(objProductData[i].OP60扫码3名称);
                    row.CreateCell(60, CellType.String).SetCellValue(objProductData[i].OP60扫码3);
                    row.CreateCell(61, CellType.String).SetCellValue(objProductData[i].OP60扫码4名称);
                    row.CreateCell(62, CellType.String).SetCellValue(objProductData[i].OP60扫码4);
                    row.CreateCell(63, CellType.String).SetCellValue(objProductData[i].返修内容);

                }
                catch (Exception)
                {

                    throw;
                }

            }

            //选择文件位置
            SaveFileDialog sfd = new SaveFileDialog();
            sfd.InitialDirectory = @"C:\Users\SpringRain\Desktop";
            sfd.Title = "请选择要保存的文件";
            sfd.Filter = "Excel表格|*.xlsx";
            sfd.ShowDialog(this);
            string path = sfd.FileName;

            //将输出流写入Excel工作簿
            try
            {
                using (FileStream fSwrite = File.OpenWrite(path))
                {
                    workbook.Write(fSwrite);
                    MessageBox.Show("保存成功");
                }
            }
            catch
            {

            }
        }

        List<string> cycCell = new List<string>();
        private void FormDataSelectBarCode_Load(object sender, EventArgs e)
        {
            //string sql = "select name from syscolumns where id = object_id(N'tiaoma') order by charindex(name, '内部码, ID, OP10扫码1名称, OP10扫码1, OP10扫码2名称, OP10扫码2, OP10扫码3名称, OP10扫码3, OP10扫码4名称, OP10扫码4, OP20扫码1名称, OP20扫码1, OP20扫码2名称, OP20扫码2, OP20扫码3名称, OP20扫码3, OP20扫码4名称, OP20扫码4, OP30扫码1名称, OP30扫码1, OP30扫码2名称, OP30扫码2, OP30扫码3名称, OP30扫码3, OP30扫码4名称, OP30扫码4, OP40扫码1名称, OP40扫码1, OP40扫码2名称, OP40扫码2, OP40扫码3名称, OP40扫码3, OP40扫码4名称, OP40扫码4, OP50扫码1名称, OP50扫码1, OP50扫码2名称, OP50扫码2, OP50扫码3名称, OP50扫码3, OP50扫码4名称, OP50扫码4, OP60扫码1名称, OP60扫码1, OP60扫码2名称, OP60扫码2, OP60扫码3名称, OP60扫码3, OP60扫码4名称, OP60扫码4, [OP70扫码1名称], [OP70扫码1], [OP80扫码1名称], [OP80扫码1]')";
            string sql = "select name from syscolumns where id = object_id(N'tiaoma') order by charindex(name, '内部码, ID, [OP10-1扫码1名称], [OP10-1扫码1], [OP10-1扫码2名称], [OP10-1扫码2], [OP10-2扫码1名称], [OP10-2扫码1], [OP10-2扫码2名称], [OP10-2扫码2], OP10扫码1名称, OP10扫码1, OP10扫码2名称, OP10扫码2, OP10扫码3名称, OP10扫码3, OP10扫码4名称, OP10扫码4, OP20扫码1名称, OP20扫码1, OP20扫码2名称, OP20扫码2, OP20扫码3名称, OP20扫码3, OP20扫码4名称, OP20扫码4, OP30扫码1名称, OP30扫码1, OP30扫码2名称, OP30扫码2, OP30扫码3名称, OP30扫码3, OP30扫码4名称, OP30扫码4, OP40扫码1名称, OP40扫码1, OP40扫码2名称, OP40扫码2, OP40扫码3名称, OP40扫码3, OP40扫码4名称, OP40扫码4, OP50扫码1名称, OP50扫码1, OP50扫码2名称, OP50扫码2, OP50扫码3名称, OP50扫码3, OP50扫码4名称, OP50扫码4, OP60扫码1名称, OP60扫码1, OP60扫码2名称, OP60扫码2, OP60扫码3名称, OP60扫码3, OP60扫码4名称, OP60扫码4, [OP70扫码1名称], [OP70扫码1], [OP80扫码1名称], [OP80扫码1]')";
            SqlDataReader rowname = SqlHelpertiaoma.GetReader(sql);
            comboBox1.Items.Add("产品型号");
            comboBox1.Items.Add("总成码");
            comboBox1.Items.Add("托盘号");
            cycCell.Add("产品下线时间");
            cycCell.Add("产品型号");
            cycCell.Add("总成码");
            cycCell.Add("托盘号");
            while (rowname.Read())
            {
                comboBox1.Items.Add(rowname["name"].ToString());
                cycCell.Add(rowname["name"].ToString());
            }
            rowname.Close();
            //foreach (var item in cycCell)
            //{
            //    File.AppendAllText("输出字段.txt", item + ",");
            //}
        }
    }
}
